Systems and methods for associating communication devices with output devices

ABSTRACT

Systems and methods for pairing user devices to selected output devices are provided. Pairing can include providing information identifying a user device to a system authority, such as a remote communication interface server. In response to verifying that a user associated with the identified user device is authorized to use a selected output device, the information identifying the user device and a local player connected to the selected output device is provided to a local controller or server. The local controller then creates and maintains an association between the user device and the local player, allowing a user of the user device to cast content to an output device associated with the paired local player.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 16/418,763, filed May 21, 2019, which is a continuation of U.S. patent application Ser. No. 15/459,394, filed Mar. 15, 2017, now U.S. Pat. No. 10,327,035, which claimed the benefit of U.S. Provisional Patent Application Ser. No. 62/308,442, filed Mar. 15, 2016, and U.S. Provisional Patent Application Ser. No. 62/402,762, filed Sep. 30, 2016, the entire disclosures of each of which are hereby incorporated herein by reference.

FIELD

Systems and methods for associating or pairing communication devices with output devices are disclosed.

BACKGROUND

Increasingly, video entertainment, such as movies and television shows, is delivered to users on demand over digital networks. In addition, the distribution of content has expanded to include user devices, such as smart phones. These user devices have the ability to interface with content delivery systems and to output video and other content to users and various output devices. However, because of the need for mobility, the output capabilities of user devices are necessarily limited. Therefore, it is desirable to direct content streams associated with a user device to televisions or home theater systems.

Systems and methods currently available include those that involve establishing a dedicated connection between a user device and an output device. However, such dedicated connections can be limited by controls put in place by digital rights management systems. In addition, where multiple output devices are potentially available in the vicinity of the user device, selecting and using an appropriate output device can become problematic, particularly in a hotel or other hospitality or Multiple Dwelling Unit setting.

Further, in many hospitality settings, there is a desire to provide entertainment services to guests using applications and devices that are familiar to guests. Accordingly, making such entertainment services, such as Netflix® for example, available to the guest has proved to be difficult while maintaining security and implementing device isolation, which prevents user devices from discovering other devices. For example, Wi-Fi clients may be restricted from seeing other Wi-Fi devices. A requirement of device isolation thus conflicts with the desire to allow a user device to discover and make use of other Wi-Fi devices in the vicinity of the user device and further allow a user to do so using video entertainment applications familiar to the user. In addition, previous systems have lacked a way to connect devices on different sub-networks or nodes.

SUMMARY

Embodiments of the present disclosure are directed to systems and methods associating or pairing a user device to an output device. More particularly, embodiments of the present disclosure enable a user device to operably connect to an output device through a selected local player. In accordance with at least some embodiments of the present disclosure, a local player includes an app that is operable to request a pairing code from a network authority. The pairing code obtained by the local player can be displayed on an output device connected to the local player. A user can then enter the displayed pairing code into the user device, and send that code to a local server using an app. In accordance with other embodiments of the present disclosure, pairing can be completed without requiring that the user enter a displayed pairing code.

Further, embodiments of the present disclosure can enable a user device to operably connect to an output device through a selected local player, such as an over-the-top (OTT) device. In accordance with at least some embodiments of the present disclosure, a local player includes an app, or application, that is operable to display customized content at the direction of a user device. In addition, the app may be operable to request a pairing code from a network authority. The pairing code obtained by the local player can be displayed on an output device connected to the local player. A user can then enter the displayed pairing code into the user device, and send that code to a verification and/or authorization server using an app.

In accordance with embodiments of the present disclosure, in a hospitality setting, a user device must be registered with a system network controller (SNC) in order for the user device to send or cast content to an output device. Once the registration is complete, the user's device is paired with their current room, and casting may be enabled for any television in that room for compatible applications. The registration and pairing require certain pieces of information to be transmitted to the SNC server. The SNC server gets this information transmitted to it via web service calls/APIs from different external sources, depending on the registration method and site configuration. The SNC server maintains the pairing association between a user's device, room, and local players (e.g., Chromecast™ devices or “over-the-top” (OTT) devices) in that room until instructed to destroy that association. The SNC server may require identification information, such as a room number and/or IP and/or MAC address of the user's device in order to register that device and pair it with the local player or players in the user's (e.g., the guest's) room. Once a pairing is established, the SNC server forwards the correct network traffic between the paired user device and the local player in the guest room, allowing casting of content to the local player. The SNC server may maintain a table of local players in each room and create a lookup table of device MAC addresses paired with local players in each room at any given time. All web service calls to or from the SNC server may contain basic information such as date, time, a sequence/packet identifier, etc.

Additional features and advantages of embodiments of the present disclosure will become more readily apparent from the following description, particularly when taken together with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram depicting components of a system in accordance with embodiments of the present disclosure;

FIG. 2 depicts a display of customized content in accordance with embodiments of the present disclosure;

FIG. 3 depicts aspects of a system network controller (SNC) in accordance with embodiments of the present disclosure;

FIG. 4 depicts aspects of an over-the-top device (OTT) in accordance with embodiments of the present disclosure;

FIG. 5 depicts aspects of a user device in accordance with embodiments of the present disclosure; and

FIG. 6 depicts a process for pairing a user device to an output device in accordance with embodiments of the present disclosure.

DETAILED DESCRIPTION

FIG. 1 is a block diagram illustrating a system 100 for enabling connectivity in accordance with embodiments of the present disclosure. The system 100 generally includes one or more user devices 104. As an example, but without limitation, a user device 104 may comprise a mobile device, such as a smart phone. As further examples, a user device 104 may comprise a tablet or a laptop computer. A user device 104 can connect to a system network controller (SNC) 108 through a first or guest communication network 112. As an example, but without limitation, the first communication network 112 may comprise a first or guest Wi-Fi network provided through one or more access points 116. For instance, an access point 116 may be provided for a particular guest room 102 or group of guest rooms. Access to the first communication network 112 by user device 104 can require entry of a valid room number, guest name, or other credential.

The system 100 also includes one or more output devices 120, for example televisions, each of which may be associated with a local player 124, such as a Chromecast™ or other over-the-top (OTT) device. The local player 124 can be connected to the output device 120 via an HDMI port. Power may be supplied to the local player 124 through a USB port associated with the output device 120. The USB port may be one that supplies power when the output device 120 is itself powered on, or can be configured to supply power continuously. In accordance with other embodiments, power may be supplied to the local player 124 through other means. For example, the local player 124 can be connected to a wall outlet. In accordance with embodiments of the present disclosure, the local player 124 may be connected to the SNC 108 through a second, hidden communication network 128. As an example, but without limitation, the second communication network 128 may comprise a second or system WiFi network that is associated with a hidden SSID. The second communication network 128 may be provided by the same or a different access point 116 than is used to provide the first communication network 112. In accordance with still other embodiments, the local player 124 can be connected to a wired network connection 134.

The SNC 108 may comprise a server computer, and may operate to perform registration functions with respect to devices, including but not limited to mobile devices 104, output devices 120, and local players 124. More particularly, the SNC 108 may maintain a table of information identifying such devices 104, 120 and 124, and associations between them. Moreover, upon the completion of registration, the SNC 108 pairs a user device 104 to a local player 124 and an associated output device 120, enabling the user device 104 to deliver content to the local player 124, and to have that content output through the output device 120. For example, the SNC 108 may operate to route content received from a user device 104 or from another source that is is sent on behalf of or at the request of the user device 104 to a paired local player 124. In an exemplary implementation, the SNC 108 is local to the local players 124 that are operated in association with the SNC 108. As used herein, local can include within the same building, complex, resort, or other geographically proximate area. In contrast, remote as used herein can include a geographically distant area, and/or a location that is geographically indistinct, such as in the cloud.

A system 100 in accordance with embodiments of the present disclosure can include various other devices and network nodes, located locally or remotely with respect to the output devices 120. For example, a local premises or hotel head end system 130 may be provided that includes the SNC 108, a local area network switch, router, an Internet access core 132, a guest Internet access controller (GIA) 136, and a property management system (PMS) 138. The network switch 132 may be associated with a wireless or wireline (e.g., Ethernet) network or networks. The GIA 136 can be provided as part of the head end system 130 for controlling and authorizing access to the first wireless network 112 by a user device 104, or other devices. The head end system 130 may generally include a control center for an entertainment system where various signals are brought together and monitored before being introduced into the local entertainment network. Accordingly, the reference to headend system 130 is not limited to video entertainment providers, such as cable TV systems, but may also or alternatively include various monitoring and control features associated with Internet access, wireless Internet access, output devices 120, local players 124, and other devices and services made available to a guest of a hospitality establishment. Various other devices may be connected to the head end system 130 via the Internet 140. Examples of such systems include a local player app and asset server 144, a network authority, such as a remote communication interface (RCI) server 148, and an information services provider server 152 residing at the same or different locations, such as location 156. Location 156 may be remote from the headend system 130, within the head end system 130, or on the hospitality or hotel premises. As a further example, the location 156 may comprise different locations in the cloud. In general, the app and asset server 144 may handle communications with apps running on local players 124. The RCI server 148 may comprise a cloud server that operates as a system authority, and performs operations that include creating pairing codes that are returned in response to a request to initiate a pairing between a output device 120 and a user device 104, directly or through a local player 124. The information services provider server 152 may provide information, such as but not limited to, hospitality-related, guest-related, and/or locally-related content to the local player 124 and/or the SNC 108. In accordance with still other embodiments of the present disclosure, the system 100 can include or be associated with a content source 126 from which a user device 104 can access content for casting to an output device 120 connected to the user device 104 as described herein.

In accordance with at least some embodiments of the present disclosure, pairing between a user device 104 and an output device 120 is performed in connection with a request for a pairing code that is entered through interaction of a guest or other user with a menu system displayed by the output device 120, and that is operated in connection with an on-site host provided as part of the head end system 130. For example, a particular implementation of an SNC 108 or an additional head end system 130 server which is operable to provide on-demand or other programming and interactive television functions via an output device 120 that is local to the head end system 130 can provide the menu system that enables a user to request a pairing code. When the user selects a menu item in the interactive television system to request a pairing between the user device 104 of the user and the output device 120, the head end system 130 makes a request for a pairing code that is created by a web service call to the RCI server 148. The information sent to the RCI server 148 to generate the pairing code may include a site identifier, a guest identifier, a local player 124 identifier, and/or a TV terminal or other output device 120 identifier where the code was requested from. The pairing code is returned from the RCI server 148 to the head end system 130, which displays it to the guest via the television (i.e., the output device) 120.

The displayed code is then entered by the guest into a connectivity app that is running on the user device 104, which provides connectivity to the RCI server 148. More particularly, the connectivity app on the user device 104 transmits the code along with the IP/MAC address information needed for association of the user device 104 with the output device 120 and the associated local player 124 by the SNC 108. The user device 104 is then registered with the SNC 108, which includes recording an association between the user device 104 and the output device 120 in a table maintained by the SNC 108. More particularly, the SNC 108 may use the room number and IP/MAC address of the user device 104 to create a pairing between the local player 124 in the guest room and the user device 104. The pairing is dissolved when the SNC 108 receives a checkout message from the site's property management system (PMS) 138. More particularly, when the checkout message is received, the PMS 138 may make a web service call to the SNC 108 to dissolve all device pairings in a room. If a PMS 138 is not operable to send messages to the SNC 108, the head end system 130 can operate such that all users (i.e. guests) are checked out at a specific time each day, at which time all pairings between user devices 104 and local players 124 for all rooms are dissolved.

In accordance with still other embodiments of the present disclosure, pairing can be performed without requiring an interactive television system running through a local head end system 130. Instead, pairing can be performed in connection with an SNC 108 and an application running on a local player 124 that interacts with the RCI server 148. The app on the local player 124 can be launched via a command from the SNC 108 when the SNC 108 detects that a local player 124 has powered up. A local player app or application, such as a default app that loads at power up, makes a web service call to the local SNC 108 to get information regarding what room and site the local player 124 is installed in. The information sent from the SNC 108 to the local player 124 also contains the URL for what app, such as a second app, the local player 124 is to launch. Once this information is retrieved, the local player app calls the specified URL and loads the requested application from a server. The URL for the requested application may point to the application and asset server 144, the information services provider server 152, the SNC 108, and/or another server providing or otherwise serving an app to the local player 124. The app running on the local player 124 then communicates, for example via a web service call, with the RCI server 148 to generate a pairing code. The information sent to the RCI server 148 to generate the pairing code includes a site identifier and room number where the code was requested from. The RCI server 148 generates the pairing code and returns it to the app running on the local player 124.

The local player 124 then displays the received pairing code on the output device 120 to the user. The pairing code can be generated on a timed basis, refreshed by an API call, or other criteria. The user then enters the code into the connectivity app running on the user device 104. The connectivity app transmits the pairing code entered by the user, along with the IP/MAC address information needed to allow the SNC 108 to associate the user device 104 with the local player 124, to the RCI server 148. The RCI server 148 makes a web service call to the SNC 108, passing the information from the user device 104 to the SNC 108. The SNC 108 uses the room number and IP/MAC address of the user device 104 to create a pairing between the local player or players 124 in the guest room and the user device 104. Optionally, the app running on the local player 124 can continue to display the pairing code after a user device 104 has been paired, to enable other devices 104 to be paired to the local player or players 124. In addition, the app running on the local player 124 can provide an indication to the user that pairing has been successfully completed.

A flag can be set in the SNC 108 to dissolve all pairings at the site at a scheduled time each day. Alternatively, the property management system 138 can make a call to the SNC 108 to dissolve a pairing for a particular room at a selected time. As yet another option, the PMS 138 can make a web service call to the SNC 108 to dissolve a pairing associated with a particular user when that user checks out of their room.

In accordance with other embodiments of the present disclosure, pairings can be completed in association with an app running on a user device 104 that is not associated with the head end system 130 or the RCI server 148. That is, a “third-party” app running on the user device 104 can be configured to provide necessary information to the RCI server 148 in order to start the device registration and pairing process. The information provided by the app can include a site identifier, room number, guest device 104 Wi-Fi IP, and/or MAC address. The RCI server 148 makes a web service call to the SNC 108, passing the information from the user device 104 to the SNC 108. The SNC 108 uses the room number and IP/MAC address of the user device 104 to create a pairing between the local player 124 in the guest room and the user device 104. Accordingly, the user never has to enter a pairing code. In a typical implementation, the third-party app is an app provided by the hotel offering connectivity to televisions or other output devices 120 in guest rooms. In accordance with at least some embodiments, a user is required to enter items of information, such as room number, hotel rewards program login credentials, or other information. A pairing thus established can be dissolved through a web service call/API. For example, upon checkout from the room, the third-party app can pass a site identifier and room number to the RCI server 148. The RCI server 148 makes a web service call to the site's SNC 108 passing the room number information. The SNC 108 uses the room number to cancel all pairing associations between a room and all user devices 104 assigned to that room and previously paired. If the third party app does not implement the web service call to dissolve pairing, the pairing can be dissolved through a message sent from a property management system 138, the pairing can be dissolved at a specific time each day, or pairing can be dissolved manually through a command entered by the user.

In accordance with still other embodiments of the present disclosure, pairing can be completed in association with a guest Internet access (GIA) login. In particular, when a user signs on to a guest Internet access system 136, for example provided by a hotel, hospitality facility, or multiple dwelling unit facility, that GIA system 136 is aware of the user device's 104 IP and MAC addresses. Most GIA systems 136 are also aware of the guest room number for identity validation or property management system integration purposes. At the time of signing in, the GIA system 136 sends site identifier, room number, and guest device Wi-Fi IP and/or MAC address to the RCI server 148, via a web service call/API. The RCI server 148 in turn makes a web service call to the correct site's SNC 108, passing the information from the GIA server 136 about the guest's device 104 to the SNC 108. The SNC 108 uses the room number and IP/MAC address of the user device 104 to create a pairing between the local player 124 in the guest room and the user device 104. In addition to providing convenient pairing of a user device 104 in the form of a smart phone, such embodiments also enable laptop computers, tablets, or other devices that may support casting through the chrome browser or other applications to an output device 120.

The GIA system 136 can disconnect a user device 104 from the system 100 by providing the RCI server 148 with an identification of the user device 104 upon guest checkout or other dissolution of a user device's 104 association with a local player 124. In response, the RCI server 148 makes a web service call to the SNC 108 for the site, passing the room number information. The SNC 108 uses the room number to cancel all pairing associations between the room and user devices 104 assigned to that room, and in particular to all local players 124 with which the user device 104 had been paired. Alternatively, a checkout message from a PMS, automatic dissolution at a scheduled time each day, manual guest dissolution, or other options for dissolving a pairing can be implemented. As yet another alternative, the GIA 136 can make a web service call to the SNC 108 directly in order to dissolve an association between a user device 104 and a local player 124.

In accordance with still other embodiments, a web service/API to request all devices currently registered for a guest Internet system can be polled when the SNC controller 108 detects that a local player 124 is being powered on, to determine if there are any user devices 104 currently assigned to that room. Information regarding such user devices 104 returned by the GIA system 136 can be used by the SNC 108 to match the user devices 104, by room number, to the appropriate local player or players 124. This polling could be performed periodically, for example where local players 124 are powered on continuously. Pairings can be dissolved when validation checks, for example performed when a local player 124 boots up, determine that a formerly valid user device 104 is no longer associated with the GIA system 136.

In accordance with at least some embodiments of the present disclosure, the SNC 108 can be configured to point at a defined Web service and broadcast helpful messages to that service. A “casting started” and “casting ended” method could be broadcast when a user starts casting content and when they stop casting. This would allow a third-party provider or system to appropriately tune the television, or set-top box associated with an output device 120. A user can then perform casting through selecting a casting icon in a selected content app. Upon making such a selection, a DRE server or set-top box listening for such events could perform the necessary tuning to the appropriate HDMI input. In such embodiments, information maintained by the SNC 108 can include a field identifying, for each local player 124, a unique identifier for an associated set-top box or tuner. This information can be passed as part of the broadcast messages. Alternatively or in addition, a master flag can be set on a per room basis to indicate whether a room is available for casting, locked to a currently paired device 104, or to implement protocols to charge a fee before casting can be initiated.

In accordance with still further embodiments of the present disclosure, the system 100 can implement app blocking. In particular, the system 100 can control or limit the apps that can be run in connection with a pairing between a user device 104 and a local player 124. For example, apps that may be disruptive, such as a local player configuration app or an unspecified Torrent app, can be blocked by refusing to answer a request by a user device 104 to launch those apps. This prevents the user from changing the local player 124 settings, or from running potentially unfriendly apps. In accordance with at least some embodiments, blocking can be implemented by having the SNC 108 block the ability to send web calls to the local player 124 via a specific TCP port on the local player 124 that is used by a configuration app. In addition, or alternatively, white lists, black lists, and the like can be used.

A system 100 in accordance with embodiments of the present disclosure can also include or be associated with a content provider server 126. The content provider server 126 may be operable to provide content, such as but not limited to streaming video, music, text or other content, to a user device 104 over a network, such as the Internet 140. Content available from a content provider server 126 may be accessed through a content provider app, a browser, a browser plug-in or other programming that enables or facilitates obtaining content from a content provider server 126. In addition to providing a user interface, the content provider app or other programming may store credentials needed to access content from the associated content provider server 126. One example of content from a content provider server is a subscription service, such as Netflix™.

FIG. 2 is an example of a default or welcome screen or display 204 presented at the output device 120 in accordance with embodiments of the present disclosure. In instances where the local player 124 is not being used, or in instances when the local player 124 is powering on, the welcome screen 204 may be the first, or otherwise give the impression of being the first, content displayed by the output device 120. In accordance with embodiments of the present disclosure, the welcome screen can include a pairing code field 206 that presents a pairing code 207 to a user. The presentation of a pairing code 207 can be automatic such that is present whenever the welcome screen 204 is displayed. A pairing code 207 can also be presented by a pairing code field 206 as a result of a command entered through the local player 124.

The default or welcome display 204 may include hospitality branding content 208, such as a logo. The hospitality branding content 208 may be provided from the SNC 108, the information services provider 152, the application and asset server 144, and/or another server accessible to the SNC and/or local player 124. The default or welcome display 204 may include guest information 212, such as a guest name and/or guest schedule 332. The guest information 212 may be provided from the SNC 108, the information services provider 152, the application and asset server 144, or another server accessible to the SNC 108 and/or local player 124. The default or welcome display 204 may include an interactive content section 216, which may allow a user to interact with, control, or otherwise participate in the welcome display 204. For example, a guest may move a selection box from a first position to pairing information 220; selecting pairing information 220 may display information regarding an active or available pairing between a user device 104, and a local player 124 in the room 102. The user or guest may use a remote or an app to move the selection box in FIG. 2. Alternatively, or in addition, the entirety or portions of the interactive content section 216 may not be interactive at all; instead, the interactive content section 216 may display actual pairing information and/or an actual listing of guest devices. The guest information 212 may be provided from the SNC 108, the information services provider 152, the application and asset server 144, and/or another server accessible to the SNC 108 and/or local player 124.

The default or welcome display 204 may include local information 224 that is local to the hospitality services provider. For example, the local information 224 may include, but is not limited to, weather information. The local information 224 may be provided from the SNC 108, the information services provider 152, the application and asset server 144, and/or another server accessible to the SNC 108 and/or local player 124. As previously discussed, the guest information 212 may include a guest schedule 232 and the guest schedule 232 may include information provided from the SNC 108, the information services provider 152, the application and asset server 144, and/or another server accessible to the SNC and/or local player 124. The guest schedule 232 may additionally include information obtained from or provided by the user device 104. For example, the user device 104 may grant access to the information services provider server 152 for example. Calendar events, contacts, and other information may then be requested by the local player 124 via a web services call such that the local play 124 can assemble and then display such information at the output device 120. In some instances, the schedule 232 may include links, such as a link 236 that provides additional information associated with one or more information content pieces within the schedule 232. Importantly, the default or welcome display 204 is launched and displayed on the output device with no guest interaction. That is, when the local play 124 is not in use and/or when the local player 124 is powered on, the default or welcome display 204 is displayed at the output device 120.

FIG. 3 is a block diagram illustrating components of a system network controller (SNC) 108 in accordance with embodiments of the present disclosure. In general, the SNC controller 108 may be implemented as a server computer, and may include a processor 304 and memory 308. The processor 304 may comprise a general purpose programmable processor or controller for executing application programming or instructions. As a further example, the processor 304 may comprise a specially configured application specific integrated circuit (ASIC). The processor 304 generally functions to run programming code or instructions, such as applications or programs, implementing various functions of the SNC 108. The memory 308 is generally used in connection with the execution of application programming by the processor 304 and for the temporary or long-term storage of program instructions and/or data. As examples, the memory 308 may comprise removable secure digital storage, RAM, SDRAM, or other solid-state memory.

The SNC 108 can also include data storage 312. In accordance with embodiments of the present invention, data storage 312 can contain program code or instructions implementing various applications or functions executed by the SNC 108. Like the memory 308, the data storage 312 can comprise a solid-state memory device. In addition, in certain applications, the data storage 312 can be integrated with and/or indistinguishable from the memory 308. Alternatively, or in addition, the data storage 312 may comprise a hard disk drive or other random access memory and/or can be interconnected to the communication server 112, for example as network attached storage. Programming or modules stored in the data storage 312 and executed by the processor 304 can include, as examples and without limitation, various pairing rules 320, various local player 124 configurations 324, and one or more tables 326. For example, the local player configurations 324 may include a table containing mapping information associating or pairing one or more local players 124 to one or more user devices 104, one or more specific apps running on a user device 104, one or more content providers 126, and/or one or more URLs. The SNC 108 may also include one or more communication interfaces 328. For example, a communication interface 328 can provide a connection to local or on-site communication networks 116, 128, and/or 134, and to the Internet 140, for example through a connected Internet access core 132.

FIG. 4 is a block diagram illustrating components of a local player 124 in accordance with embodiments of the present disclosure. Like the SNC 108, the local player 124 can include a processor 304, memory 308, and/or data storage 312. Program code or instructions that can be stored in data storage 312 and executed by the processor 304 in connection with the memory 308 can include, but is not limited to, a graphical user interface (GUI) 404. As an example, the GUI 404 can operate to present a welcome screen 204 on an attached output device 120. The GUI 404 can incorporate or operate in conjunction with a browser functionality. Alternatively or in addition the local player 124 can include a utility application or browser 408 that is directed to a web page stored on an external device, such as the application and asset server 144, or on another connected device, such as the SNC 108. As discussed elsewhere herein, a browser 408 can be directed to a web page specified by the SNC 108 when the local player 124 is powered on or restarted. In addition, the local player 124 may include one or more communication interfaces. For example, a first communication interface 412 a may comprise a WiFi interface connecting the local player 124 to a network 128, such as a hidden VLAN connecting one or more local players 124 to the Internet access core 132. As a further example, a second connection interface 408 b may comprise an HDMI directly connecting the local player 124 to an output device 120.

FIG. 5 is a block diagram illustrating components that can be included in a user device 104 in accordance with embodiments of the present disclosure. In general, and like the SNC 108 and the local player 124, the user device 104 can include a processor 304, memory 308, and/or data storage 312. The user device 104 can also include one or more user inputs 504 and one or more user outputs 508. For instance, the user device 104 can include a touch screen display that performs functions of a user input 504 and a user output 508. Program code or instructions that can be stored in data storage 312 and executed by the processor 304 in connection with the memory 308 can include, but are not limited to, a browser 512, pairing app 516, and content provider app 520. The user device 104 can also include various communication interfaces, such as a WiFi interface 524 a and a cellular telephony interface 524 b.

FIG. 6 depicts aspects of the operation of a system for selecting and delivering content 100, and in particular operation of the system 100 in connection with pairing a user device 104 to an output device 120. Initially, at step 604, an app running on the local player 124 is launched. The app can comprise a GUI 404 or a specially provided utility app 408, and can present an interface to the user through a display of an output device 120 that is directly connected to the local player 124, for example through an HDMI port on the output device 120. The app 404 or 408 makes a web service call to the SNC 108, which returns various information to the local player 124 (step 608). This information can include information about the particular room 102 and site (e.g. hotel or multiple dwelling unit facility) that includes the local player 124.

The app 404, 408 then makes a web call to the RCI server 148 (step 612). The RCI server 148 generates a pairing code 207, which is returned to the app 404, 408 (step 616). The app 404, 408 then displays the pairing code 207 on the output device 120 for the guest (step 620). As an example, the pairing code 207 can be presented to the user as part of a welcome screen 204. The RCI server 148 can generate the pairing code 207 on a timed basis, refreshed by an API code, or on some other basis. The pairing code 207 is then entered by the user into a pairing app 516 running on the user's device 104, or into a browser 512 running on the user device 104 that has been directed to a pairing page for the system 100 (step 624). The pairing code 207 is transmitted from the user device 104, along with the IP and/or MAC address of the user device 104, to the RCI server 148 (step 628). The RCI server 148 then makes a web service call to the SNC 108, passing the information from the user device 104 to the SNC 108 (step 632).

The SNC 108 applies the room number and the IP and/or MAC address of the user device 104 to create a pairing between the local player or players 124 in the room 102 of the user of the user device 104 (step 636). A record of this pairing can be maintained in a table 326 on the SNC 108. The SNC 108 can also direct the app 404, 408 on the local player 124 to continue to display the pairing code 207, which facilitates the association of additional user devices 104 with the local player 124, and/or the SNC 108 can provide a message for display by the app 404, 408 indicating to the user that the user device 104 has been paired to the local player 124 (step 640). Content from or in association with the user device 104 can then be cast to the local player 124 and on to the output device 120 (step 644). The content can be content that is obtained from a content provider server 126, for example through use of a content provider app 520 running on the user device 104. Content can also be obtained from another external resource, or from the user device 104 itself. The SNC 108 can direct content from the user device 104, and/or from a content provider 126 providing content in response to an instruction from the user device 104, to the paired local player or players 124. In particular, in response to receiving content associated with a particular user device 104, the SNC 108 can reference the table 326 of pairing information to identify a local player 124 associated with that user device 104, and can then direct the content to that identified local player 124. Content received at the SNC 108 that is not associated with a user device 104 that has been paired to a local player 124 is not passed on to any local player 124.

At step 648, a determination can be made as to whether the pairing relationship between the user device 104 and the local player 124 should be dissolved. For example, all pairings at a specific hotel or other multiple unit dwelling facility can be dissolved at a particular time each day. As another example, a pairing between a particular user device 104 and a local player 124 can be dissolved when a guest associated with the user device 104 checks out of their room. For example, through an interface with a property management system (PMS) 138, the SNC 108 could discontinue a pairing relationship on a signal from the PMS 138 that a guest associated with a user device 104 has checked out. As yet another alternative, a pairing could be dissolved in response to a command entered by the user through the pairing app 516 running on the user device 104. If the pairing is to be discontinued, the process can end. Alternatively, the user device 104 can continue to cast content to an output device 120 through the paired local player 124.

In accordance with embodiments of the present disclosure, pairings between multiple user devices 104 and local players 124 can be maintained in one or more tables 326 by the SNC 108. In a typical implementation, each user device 104 is paired to a unique local player 124 or set of local players 124. Accordingly, sharing of local players 124, and thus of output devices 120, is prevented.

In accordance with still other embodiments, pairing can be performed in association with an app or service 516, for example running on a user device 104, that provides information to the RCI server 148 regarding the site, room, and a guest identifier, such as a Wi-Fi, IP, or MAC address. The RCI server 148 then makes a web service call to the SNC 108, passing the information from the user device 104 to the SNC 108. The SNC 108 uses the room number and the address information for the user device 104 to create a pairing between the local player or players 124 in the user's room and the user device 104. In this embodiment, the user is not required to enter a pairing code. In accordance with embodiments of the present disclosure, the app 516 running on the user device 104 can be one that is provided by a hotel or other multiple dwelling unit facility, or a third party that is linked to the hotel or other facility. The pairing can be dissolved by passing identifying information, such as a site identifier and room number, to the RCI server 108 when the user associated with the user device 104 checks out of their room. The RCI server 108 then makes a web service call to the SNC 108 at the site, passing the room number information. The SNC 108 then uses the room number to cancel all pairing associations between local players 124 in the room and all user devices 104 assigned to the room. As other alternatives, dissolution of the pairing can be implemented in response to receipt of a check out message or flag indicating that a pairing should be dissolved by the SNC 108.

In accordance with other embodiments of the present disclosure, the pairing of a user device 104 to a local player 124 can be completed in association with guest internet access provided at a location. For example, a GIA controller 136 associated with a system 100 can provide a list of all user devices 104 currently registered for guest Internet access to the SNC 108 in response to a web service call/API query requesting that information. Any user devices 104 discovered as part of that request are then added to the SNC 108, and the SNC 108 can then match the newly discovered user devices 104 to the local player or players 124 in the rooms associated with the user devices 104. Requests for such information can be issued periodically from the SNC 108. Any pairings previously created that are no longer detected when the GIA controller 136 is polled can be dissolved by the SNC 108.

In accordance with still other embodiments of the present disclosure, a user device 104 can pair to a local player 124 without requiring that the user device 104 execute a specialized app, and without requiring input from a GIA system 136. In such an embodiment, the local player 124 can execute a GUI 404 or a utility app 408 that sends a request for information to the SNC 108, for example through a web service call. The SNC 108 then returns information regarding the site identifier and room number at which the local player 124 is located. The information can also identify a Wi-Fi SSID for use by a user device 104. The information can be included in a pairing token, such as a JSON Web Token (JWT), that is signed by the SNC 108. The local player 124 then sends the token on to the RCI server 156. In exchange, the RCI server 156 sends a pairing code 207 back to the local player 124. The pairing code 207 can then be displayed as part of a welcome screen or page 204 that is displayed to a user (guest). The welcome screen 204 can also include a URL and an instruction to the user to navigate to the URL on the user device 104 in order to initiate the pairing process. In accordance with at least some embodiments, the link can include the pairing code 207. When the user follows the link, a web-based pairing app is returned, which can be customized for the SNC 108 at the site of the local player 124. The return of the pairing code 207 to the RCI server 148 when the link is followed also causes the RCI server 148 to obtain the token that was sent to the RCI server 148, and to provide the token or information contained in the token to the user device 104. In addition, at the user device 104, a web page can be displayed that provides information to the user, and/or that allows the user to make one or more selections, such as a language selection. The web-based pairing app can then initiate a pairing request to the SNC 108. Initiating the pairing request can include sending the token to the SNC 108 as a means of authenticating that the user has physical access to the local player 124 and associated output device 120 that was displaying the pairing code. If the SNC 108 is able to confirm that it created the token, it will proceed with associating the user device 104 with the local player 104, and allow the user device 104 to cast content to the local player 124. In addition, the SNC 108 can record the pairing of the user device 104 and the local player 124 in the table 326 maintained on the SNC 108.

Accordingly, embodiments of the present disclosure provide for pairings between user devices 104 and local players 124 to be established and torn down flexibly and conveniently. Device isolation is maintained, and only user devices 104 associated with a particular room or authorized area are paired to local players 124 in that room or area.

The foregoing discussion of embodiments of the present disclosure has been presented for purposes of illustration and description. Further, the description is not intended to limit the disclosure to the particular embodiments disclosed herein. Consequently, variations and modifications commensurate with the above teachings, within the skill or knowledge of the relevant art, are within the scope of the present disclosure. The embodiments described hereinabove are further intended to explain the best mode presently known of practicing the various embodiments and to enable others skilled in the art to utilize the disclosed systems and methods in such or in other embodiments and with various modifications required by the particular application or use. It is intended that the appended claims be construed to include alternative embodiments to the extent permitted by the prior art. 

What is claimed is:
 1. A method for connecting devices, comprising: connecting a user device to a first server using a first network; connecting a local player to the first server using a second network; providing information identifying the user device to the first server; pairing the user device to the local player, wherein the first server associates the user device with the local player; passing data from the user device to the local player via the first network, the first server, and the second network.
 2. The method of claim 1, further comprising: providing the information identifying the user device to the first server by a guest Internet access controller.
 3. The method of claim 1, further comprising: connecting the local player to an output device; requesting a pairing code from a headend server, wherein the request for a pairing code is at least one of generated by or transmitted through the local player; providing a pairing code from the headend server to the local player for display on the output device, wherein pairing the user device to the local player includes: displaying the pairing code on the output device; entering the pairing code at the user device.
 4. The method of claim 1, further comprising: connecting the local player to an output device; launching an app on the local player, wherein the app establishes a connection with a network authority to obtain a pairing code; displaying the pairing code on the output device, wherein pairing the user device to the local player includes entering the pairing code at the user device.
 5. The method of claim 1, wherein the first and second networks are virtual networks.
 6. A communication system, comprising: a first network; a user device, wherein the user device is connected to the first network; an output device; a second network; a local player, wherein the local player is connected to the second network and to the output device; a first server, wherein the first server is connected to the first and second networks, wherein the first server is operable to pair the user device and the local player in response to receiving information identifying the user device, and wherein the local player is operable to receive content from the user device and to provide the content to the output device.
 7. The system of claim 6, wherein the local player is an over the top device.
 8. The system of claim 6, wherein the first network is a wireless network associated with a first SSID, and wherein the second network is a wireless network associated with a second SSID.
 9. The system of claim 6, further comprising: a network authority server; an app running on the local player, wherein the app is operable to obtain a pairing code from the network authority server and to display the pairing code on the output device.
 10. A method for pairing a user device to an output device, comprising: launching an app on a local player; requesting a pairing code from a network authority; providing the pairing code from the network authority to the local player; entering the pairing code in an app running on a user device; in response to receiving the pairing code from the user device, providing an identifier of the user device and local player from the network authority to a local server; pairing the user device with the local player, wherein following the pairing the user device can output content through the output device connected to the local player.
 11. The method of claim 10, further comprising: obtaining by the local player information regarding a location of the local player.
 12. The method of claim 11, wherein the pairing code is requested from the network authority after the local player has obtained the information regarding a location of the local player.
 13. The method of claim 12, further comprising: the network authority generating the pairing code after receiving the request from the local player.
 14. The method of claim 13, further comprising: displaying the pairing code by an output device connected to the local player.
 15. The method of claim 14, further comprising: maintaining a table on the local server, wherein the table includes a record of the pairing between the user device and the local player.
 16. The method of claim 15, further comprising: casting content from the user device to the local player, wherein the content is directed to the local player associated with the user device by the local server.
 17. The method of claim 16, wherein the content that is cast to the local player is obtained from a content provider server.
 18. The method of claim 16, wherein the content that is cast to the local player is obtained from the user device.
 19. The method of claim 15, wherein the table includes a record of pairings between other local players and local devices.
 20. The method of claim 18, further comprising: discontinuing the pairing between the user device and the local player. 